package models

import "gorm.io/gorm"

type Fl struct {
	Fl_id   int64  `json:"fl_id"`
	Fl_name string `json:"fl_name"`
	Zxe     []Zxe  `gorm:"foreignKey:Fenlei_id;references:Fl_id"`
}

type Zxe struct {
	Tmxh      int64  `json:"tmxh"`
	Nd_id     int64  `json:"nd_id"`
	Tmlx      string `json:"tmlx"`
	Tmnr      string `json:"tmnr"`
	Tmdas     string `json:"tmdas"`
	Tmda1     string `json:"tmda1"`
	Tmda2     string `json:"tmda2"`
	Tmda3     string `json:"tmda3"`
	Tmda4     string `json:"tmda4"`
	Tmda5     string `json:"tmda5"`
	Tmda6     string `json:"tmda6"`
	Tmzqda    string `json:"tmzqda"`
	Tmbz      string `json:"tmbz"`
	Tmtp      string `json:"tmtp"`
	Tmzs      string `json:"tmzs"`
	Fenlei_id int64  `json:"fenlei_id"`
}

type Tmnd struct {
	Nandu_id int64  `json:"nandu_id"`
	Nd_name  string `json:"nd_name"`
}

// 添加一条专项
func (model *Fl) InsertFl(entity Fl) (insertID int64, err error) {
	err = DB.Model(model).Create(&entity).Error
	if err != nil {
		return -1, err
	}
	return entity.Fl_id, nil
}

// 查一条专项题目
func (model *Zxe) Getonezxe(condition Zxe) (data Zxe, err error) {
	err = DB.Model(model).Where("tmxh=?", condition.Tmxh).First(&data).Error
	if err != nil {
		return data, err
	}
	return data, nil
}

// 删除专项题目
func (model *Zxe) Delectzxe(condition Zxe) (rows int64, err error) {
	resule := DB.Model(model).Where(condition).Delete(condition)
	err = resule.Error
	if err != nil {
		return -1, err
	}
	return resule.RowsAffected, nil
}

// 修改专项题目
func (model *Zxe) Upzxe(entity Zxe) (inserID int64, err error) {
	err = DB.Model(model).Where(entity).Save(&entity).Error
	if err != nil {
		return -1, err
	}
	return entity.Tmxh, nil

}

// 添加专项题目
func (model *Zxe) Addzxe(entity Zxe) (insertID int64, err error) {
	err = DB.Model(model).Create(&entity).Error
	if err != nil {
		return -1, err
	}
	return entity.Tmxh, nil
}

// 查年度
func (model *Tmnd) GetndList() (data []Tmnd, err error) {
	err = DB.Model(model).Scan(&data).Error
	if err != nil {
		return nil, err
	}
	return data, nil
}

// 专项分类
func GetAllZxFl(db *gorm.DB) ([]Fl, error) {
	var fl []Fl

	err := db.Preload("Zxe").Find(&fl).Error
	if err != nil {
		return nil, err
	}

	return fl, nil
}

// 查专项全部
func (model *Zxe) GetzxeList() (data []Zxe, err error) {
	err = DB.Model(model).Scan(&data).Error
	if err != nil {
		return nil, err
	}
	return data, nil
}
